package common.Message;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class RpcResponse implements Serializable {
    // 响应状态码
    private Integer code;
    // 响应信息
    private String message;
    // 响应数据
    private Object data;
    //更新：加入传输数据的类型，以便在自定义序列化器中解析
    private Class<?> dataType;
    // 构造成功信息
    public static RpcResponse success(Object data) {
        return RpcResponse.builder()
                .code(200)
                .data(data)
                .dataType(data.getClass())
                .build();
    }
    // 构造失败信息
    public static RpcResponse fail() {
        return RpcResponse.builder()
                .code(500)
                .message("服务器内部错误")
                .build();
    }
}
